package com.flying.io.datastream;

import java.io.*;

/**
 * @author 刘鹏飞
 * @ClassName TestDataStream
 * @Date 2025/2/23 22:45
 * @Created by 刘鹏飞
 * @Description 测试 数据流
 */
public class TestDataStream {

    /**
     * 三、数据流（Data Streams）
     * DataInputStream 和 DataOutputStream 专门处理基本数据类型和字符串。
     * <p>
     * 特点：
     * 直接读写 int, double, boolean 等类型。
     * 使用 writeUTF() 和 readUTF() 处理字符串（UTF-8编码）
     *
     * @param args
     */
    public static void main(String[] args) {


        try (   // 数据输出流
                DataOutputStream dos = new DataOutputStream(new FileOutputStream("data.db"));
                DataInputStream dis = new DataInputStream(new FileInputStream("data.db"))
        ) {

            // 写出数据
            // 基本数据类型
            dos.writeBoolean(true);
            dos.writeChar('c');
            dos.writeDouble(Math.PI);
            dos.writeInt(1);
            dos.writeFloat(2.3f);

            // 字符串
            dos.writeUTF("我不入地狱,谁入地狱");


            // 刷新缓冲区
            dos.flush();



            // 读取数据
            // 使用数据流时，读取的顺序一定要与写入的顺序一致，否则不能正确读取数据
            System.out.println(dis.readBoolean());
            System.out.println(dis.readChar());
            System.out.println(dis.readDouble());
            System.out.println(dis.readInt());
            System.out.println(dis.readFloat());
            System.out.println(dis.readUTF());




        } catch (IOException e) {
            e.printStackTrace();
        }































    }
}
